
_InitMain:

;config.h,22 :: 		void InitMain() {
;config.h,24 :: 		TRISA = 0x0F;
	MOVLW      15
	MOVWF      TRISA+0
;config.h,25 :: 		PORTA = 0x00;
	CLRF       PORTA+0
;config.h,27 :: 		PORTB = 0x00;
	CLRF       PORTB+0
;config.h,28 :: 		TRISB = 0xF0;
	MOVLW      240
	MOVWF      TRISB+0
;config.h,30 :: 		TRISC = 0x80;
	MOVLW      128
	MOVWF      TRISC+0
;config.h,31 :: 		PORTC = 0x00;
	CLRF       PORTC+0
;config.h,35 :: 		}
	RETURN
; end of _InitMain

_write_lcd:

;custom_lib.h,2 :: 		void write_lcd(long input, int lin, int col)
;custom_lib.h,7 :: 		if (input >= 0) {
	MOVLW      128
	XORWF      FARG_write_lcd_input+3, 0
	MOVWF      R0+0
	MOVLW      128
	SUBWF      R0+0, 0
	BTFSS      STATUS+0, 2
	GOTO       L__write_lcd39
	MOVLW      0
	SUBWF      FARG_write_lcd_input+2, 0
	BTFSS      STATUS+0, 2
	GOTO       L__write_lcd39
	MOVLW      0
	SUBWF      FARG_write_lcd_input+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__write_lcd39
	MOVLW      0
	SUBWF      FARG_write_lcd_input+0, 0
L__write_lcd39:
	BTFSS      STATUS+0, 0
	GOTO       L_write_lcd0
;custom_lib.h,8 :: 		value = input;
	MOVF       FARG_write_lcd_input+0, 0
	MOVWF      write_lcd_value_L0+0
	MOVF       FARG_write_lcd_input+1, 0
	MOVWF      write_lcd_value_L0+1
	MOVF       FARG_write_lcd_input+2, 0
	MOVWF      write_lcd_value_L0+2
	MOVF       FARG_write_lcd_input+3, 0
	MOVWF      write_lcd_value_L0+3
;custom_lib.h,9 :: 		}
	GOTO       L_write_lcd1
L_write_lcd0:
;custom_lib.h,11 :: 		value = ~input + 1;
	COMF       FARG_write_lcd_input+0, 0
	MOVWF      R0+0
	COMF       FARG_write_lcd_input+1, 0
	MOVWF      R0+1
	COMF       FARG_write_lcd_input+2, 0
	MOVWF      R0+2
	COMF       FARG_write_lcd_input+3, 0
	MOVWF      R0+3
	MOVF       R0+0, 0
	MOVWF      write_lcd_value_L0+0
	MOVF       R0+1, 0
	MOVWF      write_lcd_value_L0+1
	MOVF       R0+2, 0
	MOVWF      write_lcd_value_L0+2
	MOVF       R0+3, 0
	MOVWF      write_lcd_value_L0+3
	INCF       write_lcd_value_L0+0, 1
	BTFSC      STATUS+0, 2
	INCF       write_lcd_value_L0+1, 1
	BTFSC      STATUS+0, 2
	INCF       write_lcd_value_L0+2, 1
	BTFSC      STATUS+0, 2
	INCF       write_lcd_value_L0+3, 1
;custom_lib.h,12 :: 		}
L_write_lcd1:
;custom_lib.h,14 :: 		ch = value / 1000;                  // extract volts digit
	MOVLW      232
	MOVWF      R4+0
	MOVLW      3
	MOVWF      R4+1
	CLRF       R4+2
	CLRF       R4+3
	MOVF       write_lcd_value_L0+0, 0
	MOVWF      R0+0
	MOVF       write_lcd_value_L0+1, 0
	MOVWF      R0+1
	MOVF       write_lcd_value_L0+2, 0
	MOVWF      R0+2
	MOVF       write_lcd_value_L0+3, 0
	MOVWF      R0+3
	CALL       _Div_32x32_S+0
	MOVF       R0+0, 0
	MOVWF      write_lcd_ch_L0+0
	MOVF       R0+1, 0
	MOVWF      write_lcd_ch_L0+1
;custom_lib.h,16 :: 		if ( input >= 0 )
	MOVLW      128
	XORWF      FARG_write_lcd_input+3, 0
	MOVWF      R0+0
	MOVLW      128
	SUBWF      R0+0, 0
	BTFSS      STATUS+0, 2
	GOTO       L__write_lcd40
	MOVLW      0
	SUBWF      FARG_write_lcd_input+2, 0
	BTFSS      STATUS+0, 2
	GOTO       L__write_lcd40
	MOVLW      0
	SUBWF      FARG_write_lcd_input+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__write_lcd40
	MOVLW      0
	SUBWF      FARG_write_lcd_input+0, 0
L__write_lcd40:
	BTFSS      STATUS+0, 0
	GOTO       L_write_lcd2
;custom_lib.h,17 :: 		LCD_Chr( lin, col, '+' );         // write ASCII digit at 2nd row, 9th column
	MOVF       FARG_write_lcd_lin+0, 0
	MOVWF      FARG_Lcd_Chr_row+0
	MOVF       FARG_write_lcd_col+0, 0
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      43
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
	GOTO       L_write_lcd3
L_write_lcd2:
;custom_lib.h,18 :: 		else LCD_Chr( lin, col, '-' );    // write ASCII digit at 2nd row, 9th column
	MOVF       FARG_write_lcd_lin+0, 0
	MOVWF      FARG_Lcd_Chr_row+0
	MOVF       FARG_write_lcd_col+0, 0
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      45
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
L_write_lcd3:
;custom_lib.h,20 :: 		LCD_Chr_CP( 48+ch );                // write ASCII digit at 2nd row, 9th column
	MOVF       write_lcd_ch_L0+0, 0
	ADDLW      48
	MOVWF      FARG_Lcd_Chr_CP_out_char+0
	CALL       _Lcd_Chr_CP+0
;custom_lib.h,21 :: 		LCD_Chr_CP('.');
	MOVLW      46
	MOVWF      FARG_Lcd_Chr_CP_out_char+0
	CALL       _Lcd_Chr_CP+0
;custom_lib.h,23 :: 		ch = ( value / 100 ) % 10;          // extract 0.1 volts digit
	MOVLW      100
	MOVWF      R4+0
	CLRF       R4+1
	CLRF       R4+2
	CLRF       R4+3
	MOVF       write_lcd_value_L0+0, 0
	MOVWF      R0+0
	MOVF       write_lcd_value_L0+1, 0
	MOVWF      R0+1
	MOVF       write_lcd_value_L0+2, 0
	MOVWF      R0+2
	MOVF       write_lcd_value_L0+3, 0
	MOVWF      R0+3
	CALL       _Div_32x32_S+0
	MOVLW      10
	MOVWF      R4+0
	CLRF       R4+1
	CLRF       R4+2
	CLRF       R4+3
	CALL       _Div_32x32_S+0
	MOVF       R8+0, 0
	MOVWF      R0+0
	MOVF       R8+1, 0
	MOVWF      R0+1
	MOVF       R8+2, 0
	MOVWF      R0+2
	MOVF       R8+3, 0
	MOVWF      R0+3
	MOVF       R0+0, 0
	MOVWF      write_lcd_ch_L0+0
	MOVF       R0+1, 0
	MOVWF      write_lcd_ch_L0+1
;custom_lib.h,24 :: 		LCD_Chr_CP( 48 + ch );              // write ASCII digit at cursor point
	MOVF       R0+0, 0
	ADDLW      48
	MOVWF      FARG_Lcd_Chr_CP_out_char+0
	CALL       _Lcd_Chr_CP+0
;custom_lib.h,26 :: 		ch = ( value / 10 ) % 10;           // extract 0.01 volts digit
	MOVLW      10
	MOVWF      R4+0
	CLRF       R4+1
	CLRF       R4+2
	CLRF       R4+3
	MOVF       write_lcd_value_L0+0, 0
	MOVWF      R0+0
	MOVF       write_lcd_value_L0+1, 0
	MOVWF      R0+1
	MOVF       write_lcd_value_L0+2, 0
	MOVWF      R0+2
	MOVF       write_lcd_value_L0+3, 0
	MOVWF      R0+3
	CALL       _Div_32x32_S+0
	MOVLW      10
	MOVWF      R4+0
	CLRF       R4+1
	CLRF       R4+2
	CLRF       R4+3
	CALL       _Div_32x32_S+0
	MOVF       R8+0, 0
	MOVWF      R0+0
	MOVF       R8+1, 0
	MOVWF      R0+1
	MOVF       R8+2, 0
	MOVWF      R0+2
	MOVF       R8+3, 0
	MOVWF      R0+3
	MOVF       R0+0, 0
	MOVWF      write_lcd_ch_L0+0
	MOVF       R0+1, 0
	MOVWF      write_lcd_ch_L0+1
;custom_lib.h,27 :: 		LCD_Chr_CP( 48 + ch );              // write ASCII digit at cursor point
	MOVF       R0+0, 0
	ADDLW      48
	MOVWF      FARG_Lcd_Chr_CP_out_char+0
	CALL       _Lcd_Chr_CP+0
;custom_lib.h,29 :: 		ch = value % 10;                    // extract 0.001 volts digit
	MOVLW      10
	MOVWF      R4+0
	CLRF       R4+1
	CLRF       R4+2
	CLRF       R4+3
	MOVF       write_lcd_value_L0+0, 0
	MOVWF      R0+0
	MOVF       write_lcd_value_L0+1, 0
	MOVWF      R0+1
	MOVF       write_lcd_value_L0+2, 0
	MOVWF      R0+2
	MOVF       write_lcd_value_L0+3, 0
	MOVWF      R0+3
	CALL       _Div_32x32_S+0
	MOVF       R8+0, 0
	MOVWF      R0+0
	MOVF       R8+1, 0
	MOVWF      R0+1
	MOVF       R8+2, 0
	MOVWF      R0+2
	MOVF       R8+3, 0
	MOVWF      R0+3
	MOVF       R0+0, 0
	MOVWF      write_lcd_ch_L0+0
	MOVF       R0+1, 0
	MOVWF      write_lcd_ch_L0+1
;custom_lib.h,30 :: 		LCD_Chr_CP( 48 + ch );              // write ASCII digit at cursor point
	MOVF       R0+0, 0
	ADDLW      48
	MOVWF      FARG_Lcd_Chr_CP_out_char+0
	CALL       _Lcd_Chr_CP+0
;custom_lib.h,31 :: 		}
	RETURN
; end of _write_lcd

_clean_marks:

;custom_lib.h,34 :: 		void clean_marks() {
;custom_lib.h,35 :: 		LCD_Chr( 1, 8, ' ' );
	MOVLW      1
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      8
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      32
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
;custom_lib.h,36 :: 		LCD_Chr( 2, 8, ' ' );
	MOVLW      2
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      8
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      32
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
;custom_lib.h,37 :: 		}
	RETURN
; end of _clean_marks

_testa_uart:

;custom_lib.h,39 :: 		int testa_uart() {
;custom_lib.h,40 :: 		UART1_Write_Text("ok");
	MOVLW      ?lstr1_datalogger+0
	MOVWF      FARG_UART1_Write_Text_uart_text+0
	CALL       _UART1_Write_Text+0
;custom_lib.h,41 :: 		UART1_Write(10);                     // LF
	MOVLW      10
	MOVWF      FARG_UART1_Write_data_+0
	CALL       _UART1_Write+0
;custom_lib.h,42 :: 		UART1_Write(13);                     // CR
	MOVLW      13
	MOVWF      FARG_UART1_Write_data_+0
	CALL       _UART1_Write+0
;custom_lib.h,43 :: 		return 0;
	CLRF       R0+0
	CLRF       R0+1
;custom_lib.h,44 :: 		}
	RETURN
; end of _testa_uart

_media:

;custom_lib.h,46 :: 		unsigned long media(unsigned char channel, unsigned char qty)
;custom_lib.h,48 :: 		unsigned int vlMedia = 0;
	CLRF       media_vlMedia_L0+0
	CLRF       media_vlMedia_L0+1
;custom_lib.h,51 :: 		for(i=0; i<qty; i++) {
	CLRF       media_i_L0+0
L_media4:
	MOVF       FARG_media_qty+0, 0
	SUBWF      media_i_L0+0, 0
	BTFSC      STATUS+0, 0
	GOTO       L_media5
;custom_lib.h,52 :: 		vlMedia += ADC_Read(channel);
	MOVF       FARG_media_channel+0, 0
	MOVWF      FARG_ADC_Read_channel+0
	CALL       _ADC_Read+0
	MOVF       R0+0, 0
	ADDWF      media_vlMedia_L0+0, 1
	MOVF       R0+1, 0
	BTFSC      STATUS+0, 0
	ADDLW      1
	ADDWF      media_vlMedia_L0+1, 1
;custom_lib.h,51 :: 		for(i=0; i<qty; i++) {
	INCF       media_i_L0+0, 1
;custom_lib.h,53 :: 		}
	GOTO       L_media4
L_media5:
;custom_lib.h,54 :: 		return vlMedia/qty;
	MOVF       FARG_media_qty+0, 0
	MOVWF      R4+0
	CLRF       R4+1
	MOVF       media_vlMedia_L0+0, 0
	MOVWF      R0+0
	MOVF       media_vlMedia_L0+1, 0
	MOVWF      R0+1
	CALL       _Div_16x16_U+0
	MOVLW      0
	MOVWF      R0+2
	MOVWF      R0+3
;custom_lib.h,55 :: 		}
	RETURN
; end of _media

_interrupt:
	MOVWF      R15+0
	SWAPF      STATUS+0, 0
	CLRF       STATUS+0
	MOVWF      ___saveSTATUS+0
	MOVF       PCLATH+0, 0
	MOVWF      ___savePCLATH+0
	CLRF       PCLATH+0

;datalogger.c,34 :: 		void interrupt(void){
;datalogger.c,35 :: 		if (INTCON.RBIF == 1) {
	BTFSS      INTCON+0, 0
	GOTO       L_interrupt7
;datalogger.c,37 :: 		if (Button(&PORTB, 5, 100, 0)){                         // botao SEL
	MOVLW      PORTB+0
	MOVWF      FARG_Button_port+0
	MOVLW      5
	MOVWF      FARG_Button_pin+0
	MOVLW      100
	MOVWF      FARG_Button_time_ms+0
	CLRF       FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt8
;datalogger.c,39 :: 		st_sel = (st_sel > 3) ? 1 : ++st_sel;
	MOVF       _st_sel+0, 0
	SUBLW      3
	BTFSC      STATUS+0, 0
	GOTO       L_interrupt9
	MOVLW      1
	MOVWF      R0+0
	GOTO       L_interrupt10
L_interrupt9:
	INCF       _st_sel+0, 1
	MOVF       _st_sel+0, 0
	MOVWF      R0+0
L_interrupt10:
	MOVF       R0+0, 0
	MOVWF      _st_sel+0
;datalogger.c,40 :: 		}
L_interrupt8:
;datalogger.c,42 :: 		if (Button(&PORTB, 6, 100, 0)){                         // botao ENT
	MOVLW      PORTB+0
	MOVWF      FARG_Button_port+0
	MOVLW      6
	MOVWF      FARG_Button_pin+0
	MOVLW      100
	MOVWF      FARG_Button_time_ms+0
	CLRF       FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt11
;datalogger.c,44 :: 		st_ent = 1;
	MOVLW      1
	MOVWF      _st_ent+0
;datalogger.c,45 :: 		}
L_interrupt11:
;datalogger.c,47 :: 		if (Button(&PORTB, 7, 100, 0)){                         // botao REC
	MOVLW      PORTB+0
	MOVWF      FARG_Button_port+0
	MOVLW      7
	MOVWF      FARG_Button_pin+0
	MOVLW      100
	MOVWF      FARG_Button_time_ms+0
	CLRF       FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt12
;datalogger.c,49 :: 		st_rec = 1;
	MOVLW      1
	MOVWF      _st_rec+0
;datalogger.c,50 :: 		}
L_interrupt12:
;datalogger.c,52 :: 		if (Button(&PORTB, 4, 100, 0)) {                        // desabilita offset
	MOVLW      PORTB+0
	MOVWF      FARG_Button_port+0
	MOVLW      4
	MOVWF      FARG_Button_pin+0
	MOVLW      100
	MOVWF      FARG_Button_time_ms+0
	CLRF       FARG_Button_active_state+0
	CALL       _Button+0
	MOVF       R0+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_interrupt13
;datalogger.c,54 :: 		st_clear = 1;
	MOVLW      1
	MOVWF      _st_clear+0
;datalogger.c,55 :: 		}
L_interrupt13:
;datalogger.c,57 :: 		INTCON.RBIF = 0;                                          // Clear flag everytime inside INTF
	BCF        INTCON+0, 0
;datalogger.c,58 :: 		}
L_interrupt7:
;datalogger.c,59 :: 		}
L__interrupt41:
	MOVF       ___savePCLATH+0, 0
	MOVWF      PCLATH+0
	SWAPF      ___saveSTATUS+0, 0
	MOVWF      STATUS+0
	SWAPF      R15+0, 1
	SWAPF      R15+0, 0
	RETFIE
; end of _interrupt

_escreve_leitura_adc:

;datalogger.c,61 :: 		void escreve_leitura_adc()                                  // Escreve no LCD os valores aquisitados
;datalogger.c,63 :: 		write_lcd((sens0 - offset_sens0), 1, 1);
	MOVF       _sens0+0, 0
	MOVWF      FARG_write_lcd_input+0
	MOVF       _sens0+1, 0
	MOVWF      FARG_write_lcd_input+1
	MOVF       _sens0+2, 0
	MOVWF      FARG_write_lcd_input+2
	MOVF       _sens0+3, 0
	MOVWF      FARG_write_lcd_input+3
	MOVF       _offset_sens0+0, 0
	SUBWF      FARG_write_lcd_input+0, 1
	MOVF       _offset_sens0+1, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens0+1, 0
	SUBWF      FARG_write_lcd_input+1, 1
	MOVF       _offset_sens0+2, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens0+2, 0
	SUBWF      FARG_write_lcd_input+2, 1
	MOVF       _offset_sens0+3, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens0+3, 0
	SUBWF      FARG_write_lcd_input+3, 1
	MOVLW      1
	MOVWF      FARG_write_lcd_lin+0
	MOVLW      0
	MOVWF      FARG_write_lcd_lin+1
	MOVLW      1
	MOVWF      FARG_write_lcd_col+0
	MOVLW      0
	MOVWF      FARG_write_lcd_col+1
	CALL       _write_lcd+0
;datalogger.c,64 :: 		if (offset_sens0 != 0) LCD_Chr_CP('*');
	MOVLW      0
	MOVWF      R0+0
	XORWF      _offset_sens0+3, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc42
	MOVF       R0+0, 0
	XORWF      _offset_sens0+2, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc42
	MOVF       R0+0, 0
	XORWF      _offset_sens0+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc42
	MOVF       _offset_sens0+0, 0
	XORLW      0
L__escreve_leitura_adc42:
	BTFSC      STATUS+0, 2
	GOTO       L_escreve_leitura_adc14
	MOVLW      42
	MOVWF      FARG_Lcd_Chr_CP_out_char+0
	CALL       _Lcd_Chr_CP+0
L_escreve_leitura_adc14:
;datalogger.c,66 :: 		write_lcd((sens1 - offset_sens1), 1, 10);
	MOVF       _sens1+0, 0
	MOVWF      FARG_write_lcd_input+0
	MOVF       _sens1+1, 0
	MOVWF      FARG_write_lcd_input+1
	MOVF       _sens1+2, 0
	MOVWF      FARG_write_lcd_input+2
	MOVF       _sens1+3, 0
	MOVWF      FARG_write_lcd_input+3
	MOVF       _offset_sens1+0, 0
	SUBWF      FARG_write_lcd_input+0, 1
	MOVF       _offset_sens1+1, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens1+1, 0
	SUBWF      FARG_write_lcd_input+1, 1
	MOVF       _offset_sens1+2, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens1+2, 0
	SUBWF      FARG_write_lcd_input+2, 1
	MOVF       _offset_sens1+3, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens1+3, 0
	SUBWF      FARG_write_lcd_input+3, 1
	MOVLW      1
	MOVWF      FARG_write_lcd_lin+0
	MOVLW      0
	MOVWF      FARG_write_lcd_lin+1
	MOVLW      10
	MOVWF      FARG_write_lcd_col+0
	MOVLW      0
	MOVWF      FARG_write_lcd_col+1
	CALL       _write_lcd+0
;datalogger.c,67 :: 		if (offset_sens1 != 0) LCD_Chr_CP('*');
	MOVLW      0
	MOVWF      R0+0
	XORWF      _offset_sens1+3, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc43
	MOVF       R0+0, 0
	XORWF      _offset_sens1+2, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc43
	MOVF       R0+0, 0
	XORWF      _offset_sens1+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc43
	MOVF       _offset_sens1+0, 0
	XORLW      0
L__escreve_leitura_adc43:
	BTFSC      STATUS+0, 2
	GOTO       L_escreve_leitura_adc15
	MOVLW      42
	MOVWF      FARG_Lcd_Chr_CP_out_char+0
	CALL       _Lcd_Chr_CP+0
L_escreve_leitura_adc15:
;datalogger.c,69 :: 		write_lcd((sens2 - offset_sens2), 2, 1);
	MOVF       _sens2+0, 0
	MOVWF      FARG_write_lcd_input+0
	MOVF       _sens2+1, 0
	MOVWF      FARG_write_lcd_input+1
	MOVF       _sens2+2, 0
	MOVWF      FARG_write_lcd_input+2
	MOVF       _sens2+3, 0
	MOVWF      FARG_write_lcd_input+3
	MOVF       _offset_sens2+0, 0
	SUBWF      FARG_write_lcd_input+0, 1
	MOVF       _offset_sens2+1, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens2+1, 0
	SUBWF      FARG_write_lcd_input+1, 1
	MOVF       _offset_sens2+2, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens2+2, 0
	SUBWF      FARG_write_lcd_input+2, 1
	MOVF       _offset_sens2+3, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens2+3, 0
	SUBWF      FARG_write_lcd_input+3, 1
	MOVLW      2
	MOVWF      FARG_write_lcd_lin+0
	MOVLW      0
	MOVWF      FARG_write_lcd_lin+1
	MOVLW      1
	MOVWF      FARG_write_lcd_col+0
	MOVLW      0
	MOVWF      FARG_write_lcd_col+1
	CALL       _write_lcd+0
;datalogger.c,70 :: 		if (offset_sens2 != 0) LCD_Chr_CP('*');
	MOVLW      0
	MOVWF      R0+0
	XORWF      _offset_sens2+3, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc44
	MOVF       R0+0, 0
	XORWF      _offset_sens2+2, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc44
	MOVF       R0+0, 0
	XORWF      _offset_sens2+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc44
	MOVF       _offset_sens2+0, 0
	XORLW      0
L__escreve_leitura_adc44:
	BTFSC      STATUS+0, 2
	GOTO       L_escreve_leitura_adc16
	MOVLW      42
	MOVWF      FARG_Lcd_Chr_CP_out_char+0
	CALL       _Lcd_Chr_CP+0
L_escreve_leitura_adc16:
;datalogger.c,72 :: 		write_lcd((sens3 - offset_sens3), 2, 10);
	MOVF       _sens3+0, 0
	MOVWF      FARG_write_lcd_input+0
	MOVF       _sens3+1, 0
	MOVWF      FARG_write_lcd_input+1
	MOVF       _sens3+2, 0
	MOVWF      FARG_write_lcd_input+2
	MOVF       _sens3+3, 0
	MOVWF      FARG_write_lcd_input+3
	MOVF       _offset_sens3+0, 0
	SUBWF      FARG_write_lcd_input+0, 1
	MOVF       _offset_sens3+1, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens3+1, 0
	SUBWF      FARG_write_lcd_input+1, 1
	MOVF       _offset_sens3+2, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens3+2, 0
	SUBWF      FARG_write_lcd_input+2, 1
	MOVF       _offset_sens3+3, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens3+3, 0
	SUBWF      FARG_write_lcd_input+3, 1
	MOVLW      2
	MOVWF      FARG_write_lcd_lin+0
	MOVLW      0
	MOVWF      FARG_write_lcd_lin+1
	MOVLW      10
	MOVWF      FARG_write_lcd_col+0
	MOVLW      0
	MOVWF      FARG_write_lcd_col+1
	CALL       _write_lcd+0
;datalogger.c,73 :: 		if (offset_sens3 != 0) LCD_Chr_CP('*');
	MOVLW      0
	MOVWF      R0+0
	XORWF      _offset_sens3+3, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc45
	MOVF       R0+0, 0
	XORWF      _offset_sens3+2, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc45
	MOVF       R0+0, 0
	XORWF      _offset_sens3+1, 0
	BTFSS      STATUS+0, 2
	GOTO       L__escreve_leitura_adc45
	MOVF       _offset_sens3+0, 0
	XORLW      0
L__escreve_leitura_adc45:
	BTFSC      STATUS+0, 2
	GOTO       L_escreve_leitura_adc17
	MOVLW      42
	MOVWF      FARG_Lcd_Chr_CP_out_char+0
	CALL       _Lcd_Chr_CP+0
L_escreve_leitura_adc17:
;datalogger.c,74 :: 		}
	RETURN
; end of _escreve_leitura_adc

_main:

;datalogger.c,76 :: 		void main() {
;datalogger.c,77 :: 		InitMain();                                               // Chamada de funcao com a inicializacao das portas
	CALL       _InitMain+0
;datalogger.c,78 :: 		Lcd_init();                                               // Initialize LCD
	CALL       _Lcd_Init+0
;datalogger.c,79 :: 		Lcd_Cmd(_LCD_CURSOR_OFF);                                 // Cursor off
	MOVLW      12
	MOVWF      FARG_Lcd_Cmd_out_char+0
	CALL       _Lcd_Cmd+0
;datalogger.c,81 :: 		OPTION_REG = 0xFF;                                        // default value
	MOVLW      255
	MOVWF      OPTION_REG+0
;datalogger.c,82 :: 		INTCON.RBIF = 0;                                          // Clear interrupt flag prior to enable
	BCF        INTCON+0, 0
;datalogger.c,83 :: 		INTCON.RBIE = 1;                                          // enable external interrupts
	BSF        INTCON+0, 3
;datalogger.c,84 :: 		INTCON.GIE  = 1;                                          // enable Global interrupts
	BSF        INTCON+0, 7
;datalogger.c,86 :: 		UART1_Init(9600);                                         // initialize UART1 module
	MOVLW      103
	MOVWF      SPBRG+0
	BSF        TXSTA+0, 2
	CALL       _UART1_Init+0
;datalogger.c,87 :: 		Delay_ms(100);                                            //
	MOVLW      3
	MOVWF      R11+0
	MOVLW      8
	MOVWF      R12+0
	MOVLW      119
	MOVWF      R13+0
L_main18:
	DECFSZ     R13+0, 1
	GOTO       L_main18
	DECFSZ     R12+0, 1
	GOTO       L_main18
	DECFSZ     R11+0, 1
	GOTO       L_main18
;datalogger.c,89 :: 		spiInit();                                                // Inicializa SPI
	CALL       _spiInit+0
;datalogger.c,90 :: 		Delay_ms(100);
	MOVLW      3
	MOVWF      R11+0
	MOVLW      8
	MOVWF      R12+0
	MOVLW      119
	MOVWF      R13+0
L_main19:
	DECFSZ     R13+0, 1
	GOTO       L_main19
	DECFSZ     R12+0, 1
	GOTO       L_main19
	DECFSZ     R11+0, 1
	GOTO       L_main19
;datalogger.c,92 :: 		PWM2_Init(1000);
	BSF        T2CON+0, 0
	BSF        T2CON+0, 1
	MOVLW      249
	MOVWF      PR2+0
	CALL       _PWM2_Init+0
;datalogger.c,93 :: 		PWM2_Start();
	CALL       _PWM2_Start+0
;datalogger.c,94 :: 		PWM2_Set_Duty(127);                                       // 50% duty cycle
	MOVLW      127
	MOVWF      FARG_PWM2_Set_Duty_new_duty+0
	CALL       _PWM2_Set_Duty+0
;datalogger.c,100 :: 		while(1) {
L_main20:
;datalogger.c,103 :: 		sens0 = ( (long)media(0, numMedia) * adc_mult );          //  Faz leitura do A/D e converte para mV
	CLRF       FARG_media_channel+0
	MOVLW      8
	MOVWF      FARG_media_qty+0
	CALL       _media+0
	CALL       _Longint2Double+0
	MOVLW      26
	MOVWF      R4+0
	MOVLW      103
	MOVWF      R4+1
	MOVLW      28
	MOVWF      R4+2
	MOVLW      129
	MOVWF      R4+3
	CALL       _Mul_32x32_FP+0
	CALL       _Double2Longint+0
	MOVF       R0+0, 0
	MOVWF      _sens0+0
	MOVF       R0+1, 0
	MOVWF      _sens0+1
	MOVF       R0+2, 0
	MOVWF      _sens0+2
	MOVF       R0+3, 0
	MOVWF      _sens0+3
;datalogger.c,104 :: 		sens1 = ( (long)media(1, numMedia) * adc_mult );          //
	MOVLW      1
	MOVWF      FARG_media_channel+0
	MOVLW      8
	MOVWF      FARG_media_qty+0
	CALL       _media+0
	CALL       _Longint2Double+0
	MOVLW      26
	MOVWF      R4+0
	MOVLW      103
	MOVWF      R4+1
	MOVLW      28
	MOVWF      R4+2
	MOVLW      129
	MOVWF      R4+3
	CALL       _Mul_32x32_FP+0
	CALL       _Double2Longint+0
	MOVF       R0+0, 0
	MOVWF      _sens1+0
	MOVF       R0+1, 0
	MOVWF      _sens1+1
	MOVF       R0+2, 0
	MOVWF      _sens1+2
	MOVF       R0+3, 0
	MOVWF      _sens1+3
;datalogger.c,105 :: 		sens2 = ( (long)media(2, numMedia) * adc_mult );          //
	MOVLW      2
	MOVWF      FARG_media_channel+0
	MOVLW      8
	MOVWF      FARG_media_qty+0
	CALL       _media+0
	CALL       _Longint2Double+0
	MOVLW      26
	MOVWF      R4+0
	MOVLW      103
	MOVWF      R4+1
	MOVLW      28
	MOVWF      R4+2
	MOVLW      129
	MOVWF      R4+3
	CALL       _Mul_32x32_FP+0
	CALL       _Double2Longint+0
	MOVF       R0+0, 0
	MOVWF      _sens2+0
	MOVF       R0+1, 0
	MOVWF      _sens2+1
	MOVF       R0+2, 0
	MOVWF      _sens2+2
	MOVF       R0+3, 0
	MOVWF      _sens2+3
;datalogger.c,106 :: 		sens3 = ( (long)media(3, numMedia) * adc_mult );          //
	MOVLW      3
	MOVWF      FARG_media_channel+0
	MOVLW      8
	MOVWF      FARG_media_qty+0
	CALL       _media+0
	CALL       _Longint2Double+0
	MOVLW      26
	MOVWF      R4+0
	MOVLW      103
	MOVWF      R4+1
	MOVLW      28
	MOVWF      R4+2
	MOVLW      129
	MOVWF      R4+3
	CALL       _Mul_32x32_FP+0
	CALL       _Double2Longint+0
	MOVF       R0+0, 0
	MOVWF      _sens3+0
	MOVF       R0+1, 0
	MOVWF      _sens3+1
	MOVF       R0+2, 0
	MOVWF      _sens3+2
	MOVF       R0+3, 0
	MOVWF      _sens3+3
;datalogger.c,108 :: 		escreve_leitura_adc();                                    // Escreve no LCD os valores lidos
	CALL       _escreve_leitura_adc+0
;datalogger.c,110 :: 		if(st_sel > 0){                                         // Teste do botao SELECT
	MOVF       _st_sel+0, 0
	SUBLW      0
	BTFSC      STATUS+0, 0
	GOTO       L_main22
;datalogger.c,111 :: 		switch (st_sel) {
	GOTO       L_main23
;datalogger.c,112 :: 		case 1: clean_marks(); LCD_Chr( 1,  8, '<' ); break;
L_main25:
	CALL       _clean_marks+0
	MOVLW      1
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      8
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      60
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
	GOTO       L_main24
;datalogger.c,113 :: 		case 2: clean_marks(); LCD_Chr( 1,  8, '>' ); break;
L_main26:
	CALL       _clean_marks+0
	MOVLW      1
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      8
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      62
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
	GOTO       L_main24
;datalogger.c,114 :: 		case 3: clean_marks(); LCD_Chr( 2,  8, '<' ); break;
L_main27:
	CALL       _clean_marks+0
	MOVLW      2
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      8
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      60
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
	GOTO       L_main24
;datalogger.c,115 :: 		case 4: clean_marks(); LCD_Chr( 2,  8, '>' ); break;
L_main28:
	CALL       _clean_marks+0
	MOVLW      2
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      8
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      62
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
	GOTO       L_main24
;datalogger.c,116 :: 		}
L_main23:
	MOVF       _st_sel+0, 0
	XORLW      1
	BTFSC      STATUS+0, 2
	GOTO       L_main25
	MOVF       _st_sel+0, 0
	XORLW      2
	BTFSC      STATUS+0, 2
	GOTO       L_main26
	MOVF       _st_sel+0, 0
	XORLW      3
	BTFSC      STATUS+0, 2
	GOTO       L_main27
	MOVF       _st_sel+0, 0
	XORLW      4
	BTFSC      STATUS+0, 2
	GOTO       L_main28
L_main24:
;datalogger.c,117 :: 		}
L_main22:
;datalogger.c,119 :: 		if (st_ent == 1) {                                      // Define offset dos canais
	MOVF       _st_ent+0, 0
	XORLW      1
	BTFSS      STATUS+0, 2
	GOTO       L_main29
;datalogger.c,120 :: 		switch(st_sel) {
	GOTO       L_main30
;datalogger.c,121 :: 		case 1: offset_sens0 = sens0; break;
L_main32:
	MOVF       _sens0+0, 0
	MOVWF      _offset_sens0+0
	MOVF       _sens0+1, 0
	MOVWF      _offset_sens0+1
	MOVF       _sens0+2, 0
	MOVWF      _offset_sens0+2
	MOVF       _sens0+3, 0
	MOVWF      _offset_sens0+3
	GOTO       L_main31
;datalogger.c,122 :: 		case 2: offset_sens1 = sens1; break;
L_main33:
	MOVF       _sens1+0, 0
	MOVWF      _offset_sens1+0
	MOVF       _sens1+1, 0
	MOVWF      _offset_sens1+1
	MOVF       _sens1+2, 0
	MOVWF      _offset_sens1+2
	MOVF       _sens1+3, 0
	MOVWF      _offset_sens1+3
	GOTO       L_main31
;datalogger.c,123 :: 		case 3: offset_sens2 = sens2; break;
L_main34:
	MOVF       _sens2+0, 0
	MOVWF      _offset_sens2+0
	MOVF       _sens2+1, 0
	MOVWF      _offset_sens2+1
	MOVF       _sens2+2, 0
	MOVWF      _offset_sens2+2
	MOVF       _sens2+3, 0
	MOVWF      _offset_sens2+3
	GOTO       L_main31
;datalogger.c,124 :: 		case 4: offset_sens3 = sens3; break;
L_main35:
	MOVF       _sens3+0, 0
	MOVWF      _offset_sens3+0
	MOVF       _sens3+1, 0
	MOVWF      _offset_sens3+1
	MOVF       _sens3+2, 0
	MOVWF      _offset_sens3+2
	MOVF       _sens3+3, 0
	MOVWF      _offset_sens3+3
	GOTO       L_main31
;datalogger.c,125 :: 		}
L_main30:
	MOVF       _st_sel+0, 0
	XORLW      1
	BTFSC      STATUS+0, 2
	GOTO       L_main32
	MOVF       _st_sel+0, 0
	XORLW      2
	BTFSC      STATUS+0, 2
	GOTO       L_main33
	MOVF       _st_sel+0, 0
	XORLW      3
	BTFSC      STATUS+0, 2
	GOTO       L_main34
	MOVF       _st_sel+0, 0
	XORLW      4
	BTFSC      STATUS+0, 2
	GOTO       L_main35
L_main31:
;datalogger.c,126 :: 		st_ent = 0;
	CLRF       _st_ent+0
;datalogger.c,127 :: 		}
L_main29:
;datalogger.c,130 :: 		if (st_rec) {
	MOVF       _st_rec+0, 0
	BTFSC      STATUS+0, 2
	GOTO       L_main36
;datalogger.c,133 :: 		result = "test";
	MOVLW      ?lstr3_datalogger+0
	MOVWF      _result+0
;datalogger.c,134 :: 		monCmdSendParam(CMD_MKD, 4, result);                  // create directory
	MOVLW      6
	MOVWF      FARG_monCmdSendParam_monCmd+0
	MOVLW      4
	MOVWF      FARG_monCmdSendParam_monCount+0
	MOVF       _result+0, 0
	MOVWF      FARG_monCmdSendParam_pmonParam+0
	CALL       _monCmdSendParam+0
;datalogger.c,135 :: 		UART1_Write_Text("resposta = ");
	MOVLW      ?lstr4_datalogger+0
	MOVWF      FARG_UART1_Write_Text_uart_text+0
	CALL       _UART1_Write_Text+0
;datalogger.c,136 :: 		UART1_Write_Text(result);
	MOVF       _result+0, 0
	MOVWF      FARG_UART1_Write_Text_uart_text+0
	CALL       _UART1_Write_Text+0
;datalogger.c,137 :: 		UART1_Write(10);                                      // LF
	MOVLW      10
	MOVWF      FARG_UART1_Write_data_+0
	CALL       _UART1_Write+0
;datalogger.c,138 :: 		UART1_Write(13);                                      // CR
	MOVLW      13
	MOVWF      FARG_UART1_Write_data_+0
	CALL       _UART1_Write+0
;datalogger.c,139 :: 		monCmdSendParam(CMD_CD, 4, "test");                   // CD to the created drectory
	MOVLW      2
	MOVWF      FARG_monCmdSendParam_monCmd+0
	MOVLW      4
	MOVWF      FARG_monCmdSendParam_monCount+0
	MOVLW      ?lstr5_datalogger+0
	MOVWF      FARG_monCmdSendParam_pmonParam+0
	CALL       _monCmdSendParam+0
;datalogger.c,141 :: 		monCmdSendParam(CMD_OPW, 8, "log1.txt");              // create file??
	MOVLW      9
	MOVWF      FARG_monCmdSendParam_monCmd+0
	MOVLW      8
	MOVWF      FARG_monCmdSendParam_monCount+0
	MOVLW      ?lstr6_datalogger+0
	MOVWF      FARG_monCmdSendParam_pmonParam+0
	CALL       _monCmdSendParam+0
;datalogger.c,142 :: 		wrBuffer[0] = sens0 - offset_sens0;
	MOVF       _sens0+0, 0
	MOVWF      _wrBuffer+0
	MOVF       _sens0+1, 0
	MOVWF      _wrBuffer+1
	MOVF       _sens0+2, 0
	MOVWF      _wrBuffer+2
	MOVF       _sens0+3, 0
	MOVWF      _wrBuffer+3
	MOVF       _offset_sens0+0, 0
	SUBWF      _wrBuffer+0, 1
	MOVF       _offset_sens0+1, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens0+1, 0
	SUBWF      _wrBuffer+1, 1
	MOVF       _offset_sens0+2, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens0+2, 0
	SUBWF      _wrBuffer+2, 1
	MOVF       _offset_sens0+3, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens0+3, 0
	SUBWF      _wrBuffer+3, 1
;datalogger.c,143 :: 		wrBuffer[1] = sens1 - offset_sens1;
	MOVF       _sens1+0, 0
	MOVWF      _wrBuffer+4
	MOVF       _sens1+1, 0
	MOVWF      _wrBuffer+5
	MOVF       _sens1+2, 0
	MOVWF      _wrBuffer+6
	MOVF       _sens1+3, 0
	MOVWF      _wrBuffer+7
	MOVF       _offset_sens1+0, 0
	SUBWF      _wrBuffer+4, 1
	MOVF       _offset_sens1+1, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens1+1, 0
	SUBWF      _wrBuffer+5, 1
	MOVF       _offset_sens1+2, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens1+2, 0
	SUBWF      _wrBuffer+6, 1
	MOVF       _offset_sens1+3, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens1+3, 0
	SUBWF      _wrBuffer+7, 1
;datalogger.c,144 :: 		wrBuffer[2] = sens2 - offset_sens2;
	MOVF       _sens2+0, 0
	MOVWF      _wrBuffer+8
	MOVF       _sens2+1, 0
	MOVWF      _wrBuffer+9
	MOVF       _sens2+2, 0
	MOVWF      _wrBuffer+10
	MOVF       _sens2+3, 0
	MOVWF      _wrBuffer+11
	MOVF       _offset_sens2+0, 0
	SUBWF      _wrBuffer+8, 1
	MOVF       _offset_sens2+1, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens2+1, 0
	SUBWF      _wrBuffer+9, 1
	MOVF       _offset_sens2+2, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens2+2, 0
	SUBWF      _wrBuffer+10, 1
	MOVF       _offset_sens2+3, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens2+3, 0
	SUBWF      _wrBuffer+11, 1
;datalogger.c,145 :: 		wrBuffer[3] = sens3 - offset_sens3;
	MOVF       _sens3+0, 0
	MOVWF      _wrBuffer+12
	MOVF       _sens3+1, 0
	MOVWF      _wrBuffer+13
	MOVF       _sens3+2, 0
	MOVWF      _wrBuffer+14
	MOVF       _sens3+3, 0
	MOVWF      _wrBuffer+15
	MOVF       _offset_sens3+0, 0
	SUBWF      _wrBuffer+12, 1
	MOVF       _offset_sens3+1, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens3+1, 0
	SUBWF      _wrBuffer+13, 1
	MOVF       _offset_sens3+2, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens3+2, 0
	SUBWF      _wrBuffer+14, 1
	MOVF       _offset_sens3+3, 0
	BTFSS      STATUS+0, 0
	INCFSZ     _offset_sens3+3, 0
	SUBWF      _wrBuffer+15, 1
;datalogger.c,146 :: 		monCmdSendParam(CMD_WRF, 4, wrBuffer);                   // CD to the created drectory
	MOVLW      8
	MOVWF      FARG_monCmdSendParam_monCmd+0
	MOVLW      4
	MOVWF      FARG_monCmdSendParam_monCount+0
	MOVLW      _wrBuffer+0
	MOVWF      FARG_monCmdSendParam_pmonParam+0
	CALL       _monCmdSendParam+0
;datalogger.c,147 :: 		monCmdSendParam(CMD_WRF, 4, wrBuffer);                   // CD to the created drectory
	MOVLW      8
	MOVWF      FARG_monCmdSendParam_monCmd+0
	MOVLW      4
	MOVWF      FARG_monCmdSendParam_monCount+0
	MOVLW      _wrBuffer+0
	MOVWF      FARG_monCmdSendParam_pmonParam+0
	CALL       _monCmdSendParam+0
;datalogger.c,148 :: 		monCmdSendParam(CMD_CLF, 8, "log1.txt");
	MOVLW      10
	MOVWF      FARG_monCmdSendParam_monCmd+0
	MOVLW      8
	MOVWF      FARG_monCmdSendParam_monCount+0
	MOVLW      ?lstr7_datalogger+0
	MOVWF      FARG_monCmdSendParam_pmonParam+0
	CALL       _monCmdSendParam+0
;datalogger.c,151 :: 		st_rec = 0;
	CLRF       _st_rec+0
;datalogger.c,152 :: 		}
L_main36:
;datalogger.c,154 :: 		if(st_clear == 1) {
	MOVF       _st_clear+0, 0
	XORLW      1
	BTFSS      STATUS+0, 2
	GOTO       L_main37
;datalogger.c,155 :: 		LCD_Out( 1, 7, "  " );
	MOVLW      1
	MOVWF      FARG_Lcd_Out_row+0
	MOVLW      7
	MOVWF      FARG_Lcd_Out_column+0
	MOVLW      ?lstr8_datalogger+0
	MOVWF      FARG_Lcd_Out_text+0
	CALL       _Lcd_Out+0
;datalogger.c,156 :: 		LCD_Out( 2, 7, "  " );
	MOVLW      2
	MOVWF      FARG_Lcd_Out_row+0
	MOVLW      7
	MOVWF      FARG_Lcd_Out_column+0
	MOVLW      ?lstr9_datalogger+0
	MOVWF      FARG_Lcd_Out_text+0
	CALL       _Lcd_Out+0
;datalogger.c,157 :: 		LCD_Chr( 1, 16, ' ' );
	MOVLW      1
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      16
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      32
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
;datalogger.c,158 :: 		LCD_Chr( 2, 16, ' ' );
	MOVLW      2
	MOVWF      FARG_Lcd_Chr_row+0
	MOVLW      16
	MOVWF      FARG_Lcd_Chr_column+0
	MOVLW      32
	MOVWF      FARG_Lcd_Chr_out_char+0
	CALL       _Lcd_Chr+0
;datalogger.c,159 :: 		st_sel = 0;
	CLRF       _st_sel+0
;datalogger.c,160 :: 		offset_sens0 = 0;
	CLRF       _offset_sens0+0
	CLRF       _offset_sens0+1
	CLRF       _offset_sens0+2
	CLRF       _offset_sens0+3
;datalogger.c,161 :: 		offset_sens1 = 0;
	CLRF       _offset_sens1+0
	CLRF       _offset_sens1+1
	CLRF       _offset_sens1+2
	CLRF       _offset_sens1+3
;datalogger.c,162 :: 		offset_sens2 = 0;
	CLRF       _offset_sens2+0
	CLRF       _offset_sens2+1
	CLRF       _offset_sens2+2
	CLRF       _offset_sens2+3
;datalogger.c,163 :: 		offset_sens3 = 0;
	CLRF       _offset_sens3+0
	CLRF       _offset_sens3+1
	CLRF       _offset_sens3+2
	CLRF       _offset_sens3+3
;datalogger.c,164 :: 		st_clear = 0;
	CLRF       _st_clear+0
;datalogger.c,165 :: 		}
L_main37:
;datalogger.c,167 :: 		Delay_ms(100);
	MOVLW      3
	MOVWF      R11+0
	MOVLW      8
	MOVWF      R12+0
	MOVLW      119
	MOVWF      R13+0
L_main38:
	DECFSZ     R13+0, 1
	GOTO       L_main38
	DECFSZ     R12+0, 1
	GOTO       L_main38
	DECFSZ     R11+0, 1
	GOTO       L_main38
;datalogger.c,168 :: 		}
	GOTO       L_main20
;datalogger.c,169 :: 		}
	GOTO       $+0
; end of _main
